package com.keensense.vcm.model;

import com.keensense.vcm.model.enums.CredentialTypeEnum;
import com.keensense.vcm.model.enums.GenderEnum;

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;
import java.util.List;

/**
 * @author lanjian
 * @date 2020/7/28
 */
@XmlRootElement(name = "response")
public class GetFaceRepositoriesPeopleResponse extends BaseResponse {


    private Integer number;

    private List<People> peopleList;

    @XmlElement
    public Integer getNumber() {
        return number;
    }

    public void setNumber(Integer number) {
        this.number = number;
    }

    @XmlElementWrapper(name = "peopleList")
    @XmlElement(name = "people")
    public List<People> getPeopleList() {
        return peopleList;
    }

    public void setPeopleList(List<People> peopleList) {
        this.peopleList = peopleList;
    }

    public static class People {


        private String name;

        private String peopleId;

        private GenderEnum gender;

        private String nationality;

        private String description;

        private Long createTime;

        private String type;

        private String bornTime;

        private String occupation;

        private String country;

        private CredentialTypeEnum credentialType;

        private String credentialNumber;

        private String repositorId;

        private List<Face> faceList;

        private String tag;

        @XmlElement
        public String getBornTime() {
            return bornTime;
        }

        public void setBornTime(String bornTime) {
            this.bornTime = bornTime;
        }

        @XmlElement
        public GenderEnum getGender() {
            return gender;
        }

        public void setGender(GenderEnum gender) {
            this.gender = gender;
        }

        @XmlElement
        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        @XmlElement
        public String getPeopleId() {
            return peopleId;
        }

        public void setPeopleId(String peopleId) {
            this.peopleId = peopleId;
        }

        @XmlElement
        public String getRepositorId() {
            return repositorId;
        }

        public void setRepositorId(String repositorId) {
            this.repositorId = repositorId;
        }

        @XmlElement
        public String getType() {
            return type;
        }

        public void setType(String type) {
            this.type = type;
        }

        @XmlElement
        public String getCountry() {
            return country;
        }

        public void setCountry(String country) {
            this.country = country;
        }

        @XmlElement
        public String getCredentialNumber() {
            return credentialNumber;
        }

        public void setCredentialNumber(String credentialNumber) {
            this.credentialNumber = credentialNumber;
        }

        @XmlElement
        public CredentialTypeEnum getCredentialType() {
            return credentialType;
        }

        public void setCredentialType(CredentialTypeEnum credentialType) {
            this.credentialType = credentialType;
        }

        @XmlElement
        public Long getCreateTime() {
            return createTime;
        }

        public void setCreateTime(Long createTime) {
            this.createTime = createTime;
        }

        @XmlElement
        public String getDescription() {
            return description;
        }

        public void setDescription(String description) {
            this.description = description;
        }

        @XmlElement
        public String getNationality() {
            return nationality;
        }

        public void setNationality(String nationality) {
            this.nationality = nationality;
        }

        @XmlElement
        public String getOccupation() {
            return occupation;
        }

        public void setOccupation(String occupation) {
            this.occupation = occupation;
        }

        @XmlElementWrapper(name = "faceList")
        @XmlElement(name = "face")
        public List<Face> getFaceList() {
            return faceList;
        }

        public void setFaceList(List<Face> faceList) {
            this.faceList = faceList;
        }

        @XmlElement
        public String getTag() {
            return tag;
        }

        public void setTag(String tag) {
            this.tag = tag;
        }

        public static class Face {

            private String fileId;

            private List<Feature> featureList;

            @XmlElement
            public String getFileId() {
                return fileId;
            }

            public void setFileId(String fileId) {
                this.fileId = fileId;
            }

            @XmlElementWrapper(name = "featureList")
            @XmlElement(name = "feature")
            public List<Feature> getFeatureList() {
                return featureList;
            }

            public void setFeatureList(List<Feature> featureList) {
                this.featureList = featureList;
            }

            public static class Feature {


                private String algorithmCode;

                private String faceState;

                private String featureId;

                private String featureValue;


                @XmlElement
                public String getAlgorithmCode() {
                    return algorithmCode;
                }

                public void setAlgorithmCode(String algorithmCode) {
                    this.algorithmCode = algorithmCode;
                }

                @XmlElement
                public String getFaceState() {
                    return faceState;
                }

                public void setFaceState(String faceState) {
                    this.faceState = faceState;
                }

                public String getFeatureId() {
                    return featureId;
                }

                public void setFeatureId(String featureId) {
                    this.featureId = featureId;
                }

                @XmlElement
                public String getFeatureValue() {
                    return featureValue;
                }

                public void setFeatureValue(String featureValue) {
                    this.featureValue = featureValue;
                }
            }
        }
    }
}
